package com.tanglongan.designPattern.dp21_template.demo00;

import java.util.Map;

/**
 * 网络爬取信息流程
 */
public abstract class NetMall {

    String uId;     //用户ID
    String uPwd;    //用户密码

    public NetMall(String uId, String uPwd) {
        this.uId = uId;
        this.uPwd = uPwd;
    }

    /**
     * 生成商品推广海报（模板方法）
     */
    public String generateGoodsPoster(String skuUrl) {
        if (!login(uId, uPwd)) return null;             //1、模拟登录
        Map<String, String> reptile = reptile(skuUrl);  //2、爬取信息
        return createBase64(reptile);                   //3、生成海报
    }

    /**
     * 判断是否已经登录
     */
    protected abstract boolean login(String uId, String uPwd);

    /**
     * 爬取信息（用于获取登陆后的价格）
     */
    protected abstract Map<String, String> reptile(String skuUrl);

    /**
     * 生成海报
     */
    protected abstract String createBase64(Map<String, String> goodsInfo);

}
